﻿package com.eitb.programas.diputacion{
	import flash.events.*;
	import flash.display.*;
	import fl.controls.Label;
	import fl.controls.DataGrid;
	import fl.data.DataProvider;
	import fl.events.*;
	import fl.controls.List;
  	import fl.controls.dataGridClasses.DataGridColumn;
	import com.eitb.programas.diputacion.entidades.*;
	
	public class Pestana extends Sprite implements IVistaPestana {
		
		private var cPestana:IControladorPestana;
		private var tablaProyectos:DataGrid;
		private var debug:Label;
		private var anyoHeader:String;
		private var entidadHeader:String;
		private var proyectoHeader:String;
		private var keysHeader:String;
		
		public function Pestana():void {
			
		}		
		
		// INIT COMPONENTES
		public function initControlador(cPestana:IControladorPestana):void {
			this.cPestana=cPestana;
		}

		public function init():void {
			//this.limpiarBtn.visible=false;
			this.detalleBtn.visible=false;
			this.anoCbx.addEventListener(Event.CHANGE, this.cPestana.onAnoCbxChange);
			this.entidadCbx.addEventListener(Event.CHANGE, this.cPestana.onEntidadCbxChange);
			this.keysCbx.addEventListener(Event.CHANGE, this.cPestana.onKeysCbxChange);
			this.principalBtn.addEventListener(MouseEvent.CLICK, this.cPestana.onPrincipalBtnClick);
			this.tablaProyectos = new DataGrid();
			var dgC:DataGridColumn = new DataGridColumn("columnA");
			dgC.headerText = this.anyoHeader;
			dgC.width=40;
			this.tablaProyectos.addColumn(dgC);
			var dgC2:DataGridColumn = new DataGridColumn("columnB");
			dgC2.headerText = this.entidadHeader;
			dgC2.width=200;
			this.tablaProyectos.addColumn(dgC2);
			var dgC3:DataGridColumn = new DataGridColumn("columnC");
			dgC3.headerText = this.proyectoHeader;
			this.tablaProyectos.addColumn(dgC3);
			var dgC4:DataGridColumn = new DataGridColumn("columnD");
			dgC4.headerText = this.keysHeader;
			dgC4.width=150;
			this.tablaProyectos.addColumn(dgC4);
			this.tablaProyectos.sortableColumns = false;
			this.tablaProyectos.setSize(720, 200);
			this.tablaProyectos.move(65, 320);
			this.addChild(this.tablaProyectos);
			this.filtrarBtn.addEventListener(MouseEvent.CLICK, this.cPestana.onFiltrarBtnClick);
			this.detalleBtn.addEventListener(MouseEvent.CLICK, this.cPestana.onAceptarBtnClick);
		}
		
		public function showDebug(value:String):void {
			this.title.seccionTxt.text = value;
		}
		
		public function setTablaAnyoHeader(text:String):void {
			this.anyoHeader = text;
		}
		
		public function setTablaEntidadHeader(text:String):void {
			this.entidadHeader = text;
		}
		
		public function setTablaProyectoHeader(text:String):void {
			this.proyectoHeader = text;
		}
		
		public function setKeysProyectoHeader(text:String):void {
			this.keysHeader = text;
		}
		
		public function printTable(proyectos:Array):void {
			var dp:DataProvider = new DataProvider();
			for each (var proyecto:Proyecto in proyectos) {
				var mancomunidad:String;
				for each (var entidad in proyecto.getEntidades()) {
					mancomunidad = entidad;
					break;
				}
				var keys:String = proyecto.getPalabrasClave().join(" , ");
				dp.addItem({columnA:proyecto.getAno(), columnB:mancomunidad, columnC:proyecto.getTitulo(), columnD:keys});
			}
			
			this.tablaProyectos.dataProvider = dp;
			// EVENT LISTENER
			this.tablaProyectos.addEventListener(ListEvent.ITEM_CLICK, this.cPestana.onProyectoClick);
			
		}
		

		// INIT COMPONENTES		
		
		// IVistaPestana
		public function setVisible(visible:Boolean):void {
			this.visible=visible;
		}
		
		public function initAnoCbx(text:String):void {
			this.anoCbx.removeAll();
			this.anoCbx.prompt = text;
		}
		
		public function initEntidadCbx(text:String):void {
			this.entidadCbx.removeAll();
			this.entidadCbx.prompt = text;
		}
		
		public function initKeysCbx(text:String):void {
			this.keysCbx.removeAll();
			this.keysCbx.prompt = text;
		}
		
		public function setAnoCbxItem(ano:String):void {
			this.anoCbx.addItem({label:ano, data:ano});
		}
		
		public function setKeyCbxItem(key:String):void {
			this.keysCbx.addItem({label:key, data:key});
		}
		
		public function setEntidadCbxItem(entidad:String):void {
			this.entidadCbx.addItem({label:entidad, data:entidad});
		}

		public function setAnoCbxEnabled(enabled:Boolean):void {
			this.anoCbx.enabled=enabled;
		}

		public function setEntidadCbxEnabled(enabled:Boolean):void {
			this.entidadCbx.enabled=enabled;
		}


		public function setLimpiarBtnVisible(visible:Boolean):void {
			//this.limpiarBtn.visible=visible;
		}
		public function setAceptarBtnVisible(visible:Boolean):void {
			this.detalleBtn.visible=visible;
		}
		public function setLimpiarBtnText(text:String):void {
			//this.limpiarBtn.label=text;
		}
		public function setAceptarBtnText(text:String):void {
			this.detalleBtn.label=text;
		}
		
		public function setPrincipalBtnText(text:String):void {
			this.principalBtn.principalTxt.text = text;
		}
		
		public function setFiltrarBtnText(text:String):void {
			this.filtrarBtn.label = text;
		}
		
		public function firstPestanaPosition():void {
			//this.limpiarBtn.visible=false;
			this.detalleBtn.visible=false;
			this.x=0;
			this.y=100;
		}
		public function cbxSelectionNone():void {
			this.anoCbx.selectedIndex=0;
			this.entidadCbx.selectedIndex=0;
		}

		public function loadPestanaEvents(funcPestanaBotonClick:Function):void {
			this.pestanaBtn.removeEventListener(MouseEvent.CLICK, funcPestanaBotonClick);
			this.pestanaBtn.addEventListener(MouseEvent.CLICK, funcPestanaBotonClick);
			this.pesTxt.removeEventListener(MouseEvent.CLICK, funcPestanaBotonClick);
			this.pesTxt.addEventListener(MouseEvent.CLICK, funcPestanaBotonClick);
		}

		public function setAnoPrompt(value:String) {
			this.anoCbx.prompt = value;
		}
		public function setEntidadPrompt(value:String) {
			this.entidadCbx.prompt  = value;
		}
		
		public function setKeysPrompt(value:String) {
			this.keysCbx.prompt  = value;
		}
		
		public function setPestanaText(text:String):void {
			//trace(this.pestanaBtn);
			this.pesTxt.text = text;
		}
		
		public function transicion(mostrar:Boolean):void {
			if (mostrar) {
				this.x=0;
			} else {
				this.x=- this.width+this.pestanaBtn.width;
			}
		}
		// IVistaPestana		
	}
}